<SECTION>
<FILE>ostree-misc-experimental</FILE>
-OstreeRepoLockType
-ostree_repo_lock_push
-ostree_repo_lock_pop
-OstreeRepoAutoLock
-ostree_repo_auto_lock_push
-ostree_repo_auto_lock_cleanup
ostree_repo_get_collection_id
ostree_repo_set_collection_id
ostree_validate_collection_id
global:
ostree_remote_get_type;
ostree_remote_get_url;
- ostree_repo_auto_lock_cleanup;
- ostree_repo_auto_lock_push;
- ostree_repo_lock_pop;
- ostree_repo_lock_push;
} LIBOSTREE_2017.13_EXPERIMENTAL;
G_DEFINE_AUTO_CLEANUP_CLEAR_FUNC (OstreeRepoCommitTraverseIter, ostree_repo_commit_traverse_iter_clear)
#ifdef OSTREE_ENABLE_EXPERIMENTAL_API
-G_DEFINE_AUTOPTR_CLEANUP_FUNC (OstreeRepoAutoLock, ostree_repo_auto_lock_cleanup)
G_DEFINE_AUTOPTR_CLEANUP_FUNC (OstreeCollectionRef, ostree_collection_ref_free)
G_DEFINE_AUTO_CLEANUP_FREE_FUNC (OstreeCollectionRefv, ostree_collection_ref_freev, NULL)
G_DEFINE_AUTOPTR_CLEANUP_FUNC (OstreeRemote, ostree_remote_unref)
memset (&self->txn.stats, 0, sizeof (OstreeRepoTransactionStats));
- self->txn_locked = ostree_repo_lock_push (self, OSTREE_REPO_LOCK_SHARED,
- cancellable, error);
+ self->txn_locked = _ostree_repo_lock_push (self, OSTREE_REPO_LOCK_SHARED,
+ cancellable, error);
if (!self->txn_locked)
return FALSE;
if (self->txn_locked)
{
- if (!ostree_repo_lock_pop (self, cancellable, error))
+ if (!_ostree_repo_lock_pop (self, cancellable, error))
return FALSE;
self->txn_locked = FALSE;
}
if (self->txn_locked)
{
- if (!ostree_repo_lock_pop (self, cancellable, error))
+ if (!_ostree_repo_lock_pop (self, cancellable, error))
return FALSE;
self->txn_locked = FALSE;
}
const char *name,
GError **error);
-#ifndef OSTREE_ENABLE_EXPERIMENTAL_API
-
-/* All the locking APIs below are duplicated in ostree-repo.h. Remove the ones
- * here once it's no longer experimental.
+/* Locking APIs are currently private.
+ * See https://github.com/ostreedev/ostree/pull/1555
*/
-
typedef enum {
OSTREE_REPO_LOCK_SHARED,
OSTREE_REPO_LOCK_EXCLUSIVE
} OstreeRepoLockType;
-gboolean ostree_repo_lock_push (OstreeRepo *self,
+gboolean _ostree_repo_lock_push (OstreeRepo *self,
OstreeRepoLockType lock_type,
GCancellable *cancellable,
GError **error);
-gboolean ostree_repo_lock_pop (OstreeRepo *self,
- GCancellable *cancellable,
- GError **error);
+gboolean _ostree_repo_lock_pop (OstreeRepo *self,
+ GCancellable *cancellable,
+ GError **error);
typedef OstreeRepo OstreeRepoAutoLock;
-OstreeRepoAutoLock * ostree_repo_auto_lock_push (OstreeRepo *self,
- OstreeRepoLockType lock_type,
- GCancellable *cancellable,
- GError **error);
-void ostree_repo_auto_lock_cleanup (OstreeRepoAutoLock *lock);
-G_DEFINE_AUTOPTR_CLEANUP_FUNC (OstreeRepoAutoLock, ostree_repo_auto_lock_cleanup)
+OstreeRepoAutoLock * _ostree_repo_auto_lock_push (OstreeRepo *self,
+ OstreeRepoLockType lock_type,
+ GCancellable *cancellable,
+ GError **error);
+void _ostree_repo_auto_lock_cleanup (OstreeRepoAutoLock *lock);
+G_DEFINE_AUTOPTR_CLEANUP_FUNC (OstreeRepoAutoLock, _ostree_repo_auto_lock_cleanup)
+#ifndef OSTREE_ENABLE_EXPERIMENTAL_API
+
+/* These APIs are duplicated in the public headers when doing an
+ * experimental-API build.
+ */
const gchar * ostree_repo_get_collection_id (OstreeRepo *self);
gboolean ostree_repo_set_collection_id (OstreeRepo *self,
const gchar *collection_id,
GError **error)
{
g_autoptr(OstreeRepoAutoLock) lock =
- ostree_repo_auto_lock_push (self, OSTREE_REPO_LOCK_EXCLUSIVE, cancellable,
- error);
+ _ostree_repo_auto_lock_push (self, OSTREE_REPO_LOCK_EXCLUSIVE, cancellable, error);
if (!lock)
return FALSE;
GError **error)
{
g_autoptr(OstreeRepoAutoLock) lock =
- ostree_repo_auto_lock_push (self, OSTREE_REPO_LOCK_EXCLUSIVE, cancellable,
- error);
+ _ostree_repo_auto_lock_push (self, OSTREE_REPO_LOCK_EXCLUSIVE, cancellable, error);
if (!lock)
return FALSE;
GError **error)
{
g_autoptr(OstreeRepoAutoLock) lock =
- ostree_repo_auto_lock_push (self, OSTREE_REPO_LOCK_EXCLUSIVE, cancellable,
- error);
+ _ostree_repo_auto_lock_push (self, OSTREE_REPO_LOCK_EXCLUSIVE, cancellable, error);
if (!lock)
return FALSE;
return TRUE;
}
-/**
+/*
* ostree_repo_lock_push:
* @self: a #OstreeRepo
* @lock_type: the type of lock to acquire
* %TRUE is returned.
*
* Returns: %TRUE on success, otherwise %FALSE with @error set
- * Since: 2017.14
*/
gboolean
-ostree_repo_lock_push (OstreeRepo *self,
- OstreeRepoLockType lock_type,
- GCancellable *cancellable,
- GError **error)
+_ostree_repo_lock_push (OstreeRepo *self,
+ OstreeRepoLockType lock_type,
+ GCancellable *cancellable,
+ GError **error)
{
g_return_val_if_fail (self != NULL, FALSE);
g_return_val_if_fail (OSTREE_IS_REPO (self), FALSE);
}
}
-/**
- * ostree_repo_lock_pop:
+/*
+ * _ostree_repo_lock_pop:
* @self: a #OstreeRepo
* @cancellable: a #GCancellable
* @error: a #GError
* %TRUE is returned.
*
* Returns: %TRUE on success, otherwise %FALSE with @error set
- * Since: 2017.14
*/
gboolean
-ostree_repo_lock_pop (OstreeRepo *self,
- GCancellable *cancellable,
- GError **error)
+_ostree_repo_lock_pop (OstreeRepo *self,
+ GCancellable *cancellable,
+ GError **error)
{
g_return_val_if_fail (self != NULL, FALSE);
g_return_val_if_fail (OSTREE_IS_REPO (self), FALSE);
}
}
-/**
- * ostree_repo_auto_lock_push: (skip)
+/*
+ * _ostree_repo_auto_lock_push: (skip)
* @self: a #OstreeRepo
* @lock_type: the type of lock to acquire
* @cancellable: a #GCancellable
*
* |[<!-- language="C" -->
* g_autoptr(OstreeRepoAutoLock) lock = NULL;
- * lock = ostree_repo_auto_lock_push (repo, lock_type, cancellable, error);
+ * lock = _ostree_repo_auto_lock_push (repo, lock_type, cancellable, error);
* if (!lock)
* return FALSE;
* ]|
*
* Returns: @self on success, otherwise %NULL with @error set
- * Since: 2017.14
*/
OstreeRepoAutoLock *
-ostree_repo_auto_lock_push (OstreeRepo *self,
- OstreeRepoLockType lock_type,
- GCancellable *cancellable,
- GError **error)
+_ostree_repo_auto_lock_push (OstreeRepo *self,
+ OstreeRepoLockType lock_type,
+ GCancellable *cancellable,
+ GError **error)
{
- if (!ostree_repo_lock_push (self, lock_type, cancellable, error))
+ if (!_ostree_repo_lock_push (self, lock_type, cancellable, error))
return NULL;
return (OstreeRepoAutoLock *)self;
}
-/**
- * ostree_repo_auto_lock_cleanup: (skip)
+/*
+ * _ostree_repo_auto_lock_cleanup: (skip)
* @lock: a #OstreeRepoAutoLock
*
* A cleanup handler for use with ostree_repo_auto_lock_push(). If @lock is
* not %NULL, ostree_repo_lock_pop() will be called on it. If
* ostree_repo_lock_pop() fails, a critical warning will be emitted.
- *
- * Since: 2017.14
*/
void
-ostree_repo_auto_lock_cleanup (OstreeRepoAutoLock *lock)
+_ostree_repo_auto_lock_cleanup (OstreeRepoAutoLock *lock)
{
OstreeRepo *repo = lock;
if (repo)
g_autoptr(GError) error = NULL;
int errsv = errno;
- if (!ostree_repo_lock_pop (repo, NULL, &error))
+ if (!_ostree_repo_lock_pop (repo, NULL, &error))
g_critical ("Cleanup repo lock failed: %s", error->message);
errno = errsv;
self->tmp_expiry_seconds = g_ascii_strtoull (tmp_expiry_seconds, NULL, 10);
}
- /* Disable locking by default for now */
{ gboolean locking;
+ /* Enabled by default in 2018.05 */
if (!ot_keyfile_get_boolean_with_default (self->config, "core", "locking",
- FALSE, &locking, error))
+ TRUE, &locking, error))
return FALSE;
if (!locking)
{
#ifdef OSTREE_ENABLE_EXPERIMENTAL_API
-/**
- * OstreeRepoLockType:
- * @OSTREE_REPO_LOCK_SHARED: A shared lock
- * @OSTREE_REPO_LOCK_EXCLUSIVE: An exclusive lock
- *
- * The type of repository lock to acquire.
- *
- * Since: 2017.14
- */
-typedef enum {
- OSTREE_REPO_LOCK_SHARED,
- OSTREE_REPO_LOCK_EXCLUSIVE
-} OstreeRepoLockType;
-
-_OSTREE_PUBLIC
-gboolean ostree_repo_lock_push (OstreeRepo *self,
- OstreeRepoLockType lock_type,
- GCancellable *cancellable,
- GError **error);
-_OSTREE_PUBLIC
-gboolean ostree_repo_lock_pop (OstreeRepo *self,
- GCancellable *cancellable,
- GError **error);
-
-/**
- * OstreeRepoAutoLock: (skip)
- *
- * This is simply an alias to #OstreeRepo used for automatic lock cleanup.
- * See ostree_repo_auto_lock_push() for its intended usage.
- *
- * Since: 2017.14
- */
-typedef OstreeRepo OstreeRepoAutoLock;
-
-_OSTREE_PUBLIC
-OstreeRepoAutoLock * ostree_repo_auto_lock_push (OstreeRepo *self,
- OstreeRepoLockType lock_type,
- GCancellable *cancellable,
- GError **error);
-_OSTREE_PUBLIC
-void ostree_repo_auto_lock_cleanup (OstreeRepoAutoLock *lock);
-
_OSTREE_PUBLIC
const gchar * ostree_repo_get_collection_id (OstreeRepo *self);
_OSTREE_PUBLIC
# and we don't need xattr coverage for this
with open('repo/config', 'a') as f:
f.write('disable-xattrs=true\n')
- f.write('locking=true\n')
def commit(v):
tdir='tree{}'.format(v)